Package Back

Class Node<T extends java.io.Serializable & java.lang.Comparable<T>>

  • All Implemented Interfaces:
    java.lang.Comparable<Node<T>>

    public class Node<T extends java.io.Serializable & java.lang.Comparable<T>>
    extends java.lang.Object
    implements java.lang.Comparable<Node<T>>
    • Constructor Summary

      Constructors 
      Constructor Description
      Node()
      prazdny konstruktor, hodnota je null, potomkovia prazdny ArrayList
      Node​(java.util.Scanner s)
      konstruktor ktory sa vyuziva pri citani stromu z JSON suboru
      Node​(T value, java.util.List<Node<T>> sons)
      konstruktor nastavi hodnotu, potomkov a _find a _add ktore sa vyuzivaju pri animacii
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      double balance()
      najde najvacsieho syna, vypocita priemernu odchylku ostatnych synov od neho
      int compareTo​(Node<T> node)
      zavola private metodu compare ktora ma 2 Ostatne.Node parametre do ktorych vlozi this a parameter node priv metoda porovnava hodnoty v preorder poradi null je mensi ako hodnota
      boolean contains​(T elem)
      hlada v strome vrchol s danou hodnotou, ak hodnota nie je null, porovna ich inac porovna ci je aj hladana hodnota null
      boolean equals​(java.lang.Object o)
      vrati hodnost triedy a hodnoty
      Node<T> findByNode​(Node<T> node)
      zavola funkciu findFather ak vrati null - vrchol sa v strome nenachadza vracia null ak vrati Ostatne.Node - vojde do jeho synov, najde pozadovany vrchol ktory vrati
      Node<T> findByValue​(T val)
      urobi vrchol s touto hodnotou, zavola rovnaku funkciu s parametrom ktory je vrchol
      Node<T> findFatherByNode​(Node<T> n)
      rekurzivne prechadza strom, kontroluje ci sa dany vrchol nachadza u niekoho v synoch, ak ano tak ho vrati
      Node<T> findFatherByValue​(T val)
      urobi vrchol s touto hodnotou, zavola rovnaku funkciu s parametrom ktory je vrchol
      boolean getAdd()  
      java.util.List<java.util.ArrayList<Node<T>>> getByLevels()  
      boolean getFind()  
      java.lang.String getJSon​(int odsadenie)  
      java.util.List<Node<T>> getSons()  
      T getValue()  
      int hashCode()  
      int height()  
      void insertNode​(int i, Node<T> node)
      urobi vlozi Ostatne.Node do synov na urcene miest
      boolean join​(Node<T> node)
      v podstrome rekurzivne vyhlada ci sa pozadovany vrchol nachadza niekde v podstrome ak ano, tak zavola privatnu funkciu ktora rekurzivne prida nove vrcholy
      static void main​(java.lang.String[] args)  
      boolean move​(T _which, T _where)
      pomocou parametrov najde "smerniky" na vrcholy s ktorymi sa bude pracovat, nasledne vrcholu _where prida do synov vrchol _which ktory odstrani z povodneho miesta
      java.lang.String print()  
      boolean remove​(T val)
      z hodnoty vytvori vrchol ktoremu nasledne v podstrome rekurzivne vyhladava otca, ak existuje,konstruktor tento vrchol mu odstrani zo synov, inac skontroluje ci sa nejedna o aktualny vrchol vtom pripade si vynuluje hodnotu a synov
      void removeNode​(Node<T> node)  
      void setAdd​(boolean add)
      nastavenie _add
      void setFind​(boolean find)
      nastavenie _find
      void setSons​(java.util.List<Node<T>> sons)
      nastavuje synov vrcholu
      void setValue​(T value)
      nastavuje hodnotu vrcholu
      int size()  
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • Node

        public Node​(T value,
                    java.util.List<Node<T>> sons)
        konstruktor nastavi hodnotu, potomkov a _find a _add ktore sa vyuzivaju pri animacii
        Parameters:
        value - hodnota vrcholu
        sons - list potomkov - ak null nastavi sa na prazdny ArrayList
      • Node

        public Node()
        prazdny konstruktor, hodnota je null, potomkovia prazdny ArrayList
      • Node

        public Node​(java.util.Scanner s)
        konstruktor ktory sa vyuziva pri citani stromu z JSON suboru
        Parameters:
        s - scanner z ktoreho sa rekurzivne citaju udaje
    • Method Detail

      • getFind

        public boolean getFind()
        Returns:
        vracia premennu _find s ktorou pracuje animacia
      • setFind

        public void setFind​(boolean find)
        nastavenie _find
        Parameters:
        find - prideli sa do _find
      • getAdd

        public boolean getAdd()
        Returns:
        vracia premennu _add s ktorou pracuje animacia
      • setAdd

        public void setAdd​(boolean add)
        nastavenie _add
        Parameters:
        add - prideli sa do _add
      • insertNode

        public void insertNode​(int i,
                               Node<T> node)
        urobi vlozi Ostatne.Node do synov na urcene miest
        Parameters:
        i - pozicia kde sa ma Ostatne.Node vlozit
        node - Ostatne.Node ktory bude vkladany
      • removeNode

        public void removeNode​(Node<T> node)
      • getValue

        public T getValue()
        Returns:
        vrati hodnoru vrcholu
      • setValue

        public void setValue​(T value)
        nastavuje hodnotu vrcholu
        Parameters:
        value - hodnota ktora sa priradi
      • getSons

        public java.util.List<Node<T>> getSons()
        Returns:
        vrati synov vrcholu
      • setSons

        public void setSons​(java.util.List<Node<T>> sons)
        nastavuje synov vrcholu
        Parameters:
        sons - list ktory sa priradi
      • size

        public int size()
        Returns:
        vracia pocet vsetkych podvrcholov + seba
      • height

        public int height()
        Returns:
        vrati vysku stromu
      • balance

        public double balance()
        najde najvacsieho syna, vypocita priemernu odchylku ostatnych synov od neho
        Returns:
        odchylka velkosti
      • join

        public boolean join​(Node<T> node)
        v podstrome rekurzivne vyhlada ci sa pozadovany vrchol nachadza niekde v podstrome ak ano, tak zavola privatnu funkciu ktora rekurzivne prida nove vrcholy
        Parameters:
        node - vrchol ktory ideme pripajat
        Returns:
        ak je node null alebo sa nenachadza v podstrome vrati false inac true
      • remove

        public boolean remove​(T val)
        z hodnoty vytvori vrchol ktoremu nasledne v podstrome rekurzivne vyhladava otca, ak existuje,konstruktor tento vrchol mu odstrani zo synov, inac skontroluje ci sa nejedna o aktualny vrchol vtom pripade si vynuluje hodnotu a synov
        Parameters:
        val - hodnota vrcholu ktory ideme odstranit
        Returns:
        ak otec neexistuje vrati false, inac true
      • move

        public boolean move​(T _which,
                            T _where)
        pomocou parametrov najde "smerniky" na vrcholy s ktorymi sa bude pracovat, nasledne vrcholu _where prida do synov vrchol _which ktory odstrani z povodneho miesta
        Parameters:
        _where - hodnota vrcholu ktoremu sa bude pridavat syn
        _which - hodnota vrcholu ktory sa bude premiestnovat
        Returns:
        ak sa v strome nenachadza vrchol s tymito hodnotami vracia false inac true
      • contains

        public boolean contains​(T elem)
        hlada v strome vrchol s danou hodnotou, ak hodnota nie je null, porovna ich inac porovna ci je aj hladana hodnota null
        Parameters:
        elem - hladana hodnota
        Returns:
        true ak sa v strome nachadza vrchol s touto hodnotou inac false
      • findFatherByValue

        public Node<T> findFatherByValue​(T val)
        urobi vrchol s touto hodnotou, zavola rovnaku funkciu s parametrom ktory je vrchol
        Parameters:
        val - hladana hodnota
        Returns:
        ak sa v strome nachadza vrchol s touto hodnotou tak ho vrati jeho otca inac vrati null
      • findFatherByNode

        public Node<T> findFatherByNode​(Node<T> n)
        rekurzivne prechadza strom, kontroluje ci sa dany vrchol nachadza u niekoho v synoch, ak ano tak ho vrati
        Parameters:
        n - hladany vrchol
        Returns:
        otec hladaneho vrcholu ak sa nachadza inac vrati null
      • findByValue

        public Node<T> findByValue​(T val)
        urobi vrchol s touto hodnotou, zavola rovnaku funkciu s parametrom ktory je vrchol
        Parameters:
        val - hladana hodnota
        Returns:
        vrchol s pozadovanou hodnotou ak sa nachadza inac null
      • findByNode

        public Node<T> findByNode​(Node<T> node)
        zavola funkciu findFather ak vrati null - vrchol sa v strome nenachadza vracia null ak vrati Ostatne.Node - vojde do jeho synov, najde pozadovany vrchol ktory vrati
        Parameters:
        node - hladany vrchol
        Returns:
        vrchol s pozadovanou hodnotou ak sa nachadza inac null
      • getByLevels

        public java.util.List<java.util.ArrayList<Node<T>>> getByLevels()
        Returns:
        vrati list listov, kde jeden list reprezentuje jednu uroven stromu
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        vrati hash vrcholu
      • equals

        public boolean equals​(java.lang.Object o)
        vrati hodnost triedy a hodnoty
        Overrides:
        equals in class java.lang.Object
        Returns:
        true ak o je rovnakej triedy a hodnoty sa rovnaju, inak false
      • compareTo

        public int compareTo​(Node<T> node)
        zavola private metodu compare ktora ma 2 Ostatne.Node parametre do ktorych vlozi this a parameter node priv metoda porovnava hodnoty v preorder poradi null je mensi ako hodnota
        Specified by:
        compareTo in interface java.lang.Comparable<T extends java.io.Serializable & java.lang.Comparable<T>>
        Parameters:
        node - vrchol s ktorym porovnava
        Returns:
        vrati kladne cislo ak je this vacsi, zaporne ak node, 0 ak sa rovnaju
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
        Returns:
        vrati hodnotu premenenu na string po odkomentovani vypisuje rekurzivne aj podstrom vo formate this( son1( son11( .. ), .. ), son2( .. ), .. ))
      • print

        public java.lang.String print()
        Returns:
        vratis strom v tvare: this --> son1 --> son11 --> son12 --> son2
      • getJSon

        public java.lang.String getJSon​(int odsadenie)
        Parameters:
        odsadenie - aby to pekne vyzeralo, pouziva sa odsadenie
        Returns:
        vrati String stromu ktory je prisposobeny na ukladanie do JSONu
      • main

        public static void main​(java.lang.String[] args)